<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
//引入input
use Input;
use App\Admin\Auth;
class AuthController extends Controller
{
    //权限添加
    public function add(){
    	
    	//请求类型判断
    	if(Input::method() == 'POST'){
    		//写一些必要的验证
    		$result = Auth::insert(Input::except('_token')); //布尔值
    		//需要返回添加结果
    		return $result ? '1' : '0';
    	}else{
    		//获取顶级权限
    		$parents = Auth::where('pid','0') -> get();
    		//展示视图
    		return view('admin.auth.add',compact('parents'));
    	}
    }

    //列表
    public function index(){
    	//获取数据
    	$data = Auth::all();
    	//展示视图
    	return view('admin.auth.index',compact('data'));
	}


	/**
	 * 权限功能 修改权限的方法
	 *
	 * @param Request $request 需要前台页面传递id参数
	 * 
	 * @return void   如果请求方式为post则返回修改以后的结果
	 * 				  不做任何修改就提交返回失败
	 * 				  如果请求方式为get则展示要修改的界面
	 */

	  public function edit(Request $request) 
    {
         $id = Input::get('id');
        if ($request->method() == 'POST') {
            $data = $request->except(['_token']);
            $result = Auth::where('id', $id)
                          ->update($data);
            return $result;
        } else {
            $data = Auth::find($id);
            return view('admin.auth.edit', compact('data'));
        }
        
	}
	

	/**
	 * 权限功能 删除权限的方法 
	 *
	 * @param Request $request 
	 * @param string  $id
	 * 
	 * @return json 返回删除的结果true删除成功
	 *  false 删除失败以及失败信息
	 */

    public function del(Request $request) 
    {
        $id = $request->id;
        $table = new Auth();
        $result = $table -> where('id', '=', $id)->delete();
        return response()->json(['result' => $result, 'msg'=>'删除失败']);
	}
	/**
	 * 权限功能模块 批量删除方法
	 *
	 * @param Request $request 必须是Request的实列
	 * @param array   $arr 必须是一个数组
	 * 
	 * @return json 返回操作的结果如果成功返回删除的条数
	 * 失败返回结果和失败的提示
	 */

	public function delAll(Request $request) 
	{
		$arr = json_decode($request->arr);
		$result = Auth::destroy($arr);
        return response() ->json(['result' => $result, 'msg' => '删除失败']);
	}
}
